﻿#define _CRT_SECURE_NO_WARNINGS 1 
#include<stdio.h>

	//单目操作符 - 只有一个操作数的运算符
	//！、++、--、&、*、+、-、~ 、sizeof、(类型)

	//逗号表达式
	//exp1,exp2,exp3,…,expN
	//逗号表达式
	//从左向右依次执⾏，整个表达式的结果是最后⼀个表达式的结果
	
//int main()
//{
//	//int a = 1;
//	//int b = 2;
//	//int c = (a > b, a = b + 10, a, b = a + 1);//逗号表达式
//	////逗号表达式需要计算，但是结果只取最后一个表达式
//	//printf("%d\n", c);
//
//	//return 0;
//	a = get_val();
//	count_val(a);
//	while (a > 0)
//	{
//		//业务处理
//		//...
//		a = get_val();
//		count_val(a);
//	}
//	//改写
//	while(a = get_val(),count_val(a),a>0)
//		return 0;
//}
//

//int main()
//{
//	int arr[10] = { 0 };
//	arr[5] = 6;//[] - 下标引用操作符
//	//[]是操作符，它的操作数是：arr,5
//
//
//	return 0;
//}
//void test()
//{
//	printf("hehe\n");
//}
//int Add(int x, int y)
//{
//	return x + y;
//}
//
////函数在调用的时候，函数名后面的括号就是函数调用操作符
////() - 操作数是：函数名，参数
////函数调用操作符，最少有一个操作数 - 函数名
////
//int main()
//{
//	int c = Add(2, 3);///Add,2,3
//	test();//test
//	printf("hehe");
//	printf("%d", 100);
//
//	return 0;
//}
//声明一个学生类型
//学生：名字，性别，年龄，学号
//     名字 - 字符串 - 字符数组
//     性别 - 字符串 - 字符数组
//     年龄 - 整数
//     学号 - 字符串 - 字符数组
//struct Student
//{
//	//成员
//	char name[20];
//	char sex[12];
//	int age;
//	char id[16];
//}s5,s6,s7;//都是结构体变量（全局）
////全局变量
//struct Student s4;
//
//int main()
//{
//	//局部变量
//	struct Student s1;
//	struct Student s2;
//	struct Student s3;
//
//	return 0;
//}

struct Point
{
	int x;
	int y;
}p3 = { 0,0 }, p4 = { 4,1 };

struct Point p2 = { 6,8 };

struct Student
{
	//成员
	char name[20];
	char sex[12];
	int age;
	char id[16];
};

struct Node
{
	int date;
	struct Point p;
	struct Node* next;
};//结构体嵌套初始化

int main()
{
	struct Point p1 = { 4,5 };
	struct Student s1 = { "张三","男",18,"2024080101" };
	struct Student s2 = { .age = 20,.id = "2024090203",.name = "张三",.sex = "nv" };
	struct Node n1 = { 200,{20,30},NULL };

	scanf("%d", &(s1.age));//直接访问成员
	printf("%s %s %d %s\n", s1.name, s1.sex, s1.age, s1.id);
	//结构体变量.结构体成员
	return 0;
}